package cn.com.surker.sale.service;

import cn.com.surker.sale.entity.SaleClient;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 销售客户表 服务类
 * </p>
 *
 * @author admin
 * @since 2024-06-18
 */
public interface SaleClientService extends IService<SaleClient> {

	/**
	 * 根据税号查询客户信息,用于验证客户信息是否已经存在
	 *
	 * @param taxCode 税号
	 * @return 客户信息
	 */
	SaleClient queryByTaxCode(String taxCode);


	/**
	 * 根据名称查询客户信息,用于验证客户信息是否已经存在
	 *
	 * @param name 名称
	 * @return 客户信息
	 */
	SaleClient queryByName(String name);

	/**
	 * 查询客户
	 *
	 * @param name     客户名称
	 * @param fullName 全称
	 * @param taxCode  纳税人编号
	 * @param linkMan  联系人
	 * @param status   状态
	 * @return 返回客户详情
	 */
	SaleClient queryClient(String name, String fullName, String taxCode, String linkMan, Integer status);

	/**
	 * 查询客户列表
	 *
	 * @param name     客户名称
	 * @param fullName 全称
	 * @param taxCode  纳税人编号
	 * @param linkMan  联系人
	 * @param orgId    站点id
	 * @param status   状态
	 * @return 返回客户列表
	 */
	List<SaleClient> queryList(String name, String fullName, String taxCode, String linkMan, Long orgId, Integer status);


	/**
	 * 分页查询
	 *
	 * @param name     客户名称
	 * @param fullName 全称
	 * @param taxCode  纳税人编号
	 * @param linkMan  联系人
	 * @param status   状态
	 * @param offset   分页参数,第几页
	 * @param limit    分页参数,每页数量
	 * @return 返回分页数据
	 */
	IPage<SaleClient> queryPage(String name, String fullName, String taxCode, String linkMan, Integer status, Integer offset, Integer limit);


}
